level bar: Don't leave css nodes behind
authorMatthias Clasen <mclasen@redhat.com>
Tue, 1 Mar 2016 20:35:32 +0000 (15:35 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 1 Mar 2016 20:35:32 +0000 (15:35 -0500)
We create and destroy gadgets inside the levelbar hierarchy here,
and if we don't explicitly remove their CSS nodes from the parent,
they stick around.

gtk/gtklevelbar.c

index 99317dc390f692524b9321a842581a1dfecf34ae..d293661591b0654cb818dfded186fc85d43d773c 100644 (file)
@@ -586,7 +586,10 @@ update_block_nodes (GtkLevelBar *self)
   else if (n_blocks < priv->n_blocks)
     {
       for (i = n_blocks; i < priv->n_blocks; i++)
-        g_clear_object (&priv->block_gadget[i]);
+        {
+          gtk_css_node_set_parent (gtk_css_gadget_get_node (priv->block_gadget[i]), NULL);
+          g_clear_object (&priv->block_gadget[i]);
+        }
       priv->block_gadget = g_renew (GtkCssGadget*, priv->block_gadget, n_blocks);
       priv->n_blocks = n_blocks;
     }